#ifndef SRNETWORKCLIENT_H
#define SRNETWORKCLIENT_H

#include "raknet/MessageIdentifiers.h"
#include "raknet/RakNetworkFactory.h"
#include "raknet/RakPeerInterface.h"
#include "raknet/RakNetTypes.h"

#include "raknet/BitStream.h"
#include "raknet/RakSleep.h"

#include <iostream>
#include <vector>
#include <deque>
#include <list>
#include <boost/lexical_cast.hpp> //int --> string casting

#include "msgManager.h"
#include "networkBasics.h"
#include "guiManager.h"
#include "windowManager.h"



using namespace std;

class guiManager;
class windowManager;
class msgSystem;

class networkManager : networkBasics {


    public:


        networkManager();
        virtual ~networkManager();

        void Init(void);
        void IntroduceMessage(msgManager *pMsg);
        void IntroduceGui(guiManager *pGui);
        void IntroduceWindows(windowManager *pWin);
        void Connect(string pHost);

        void sendMessage(int pType);
        void readMessage(Packet *packet);

        void Tick( void );
        void TickSecond( void );

         int getStatus(void);



        int debug;

    protected:


    private:

        RakPeerInterface* peer;
        Packet *packet;

        int conTimer;
        bool isConnected;

        int status;

        msgManager *msg;
        guiManager *gui;
        windowManager *win;





};



#endif // SRNETWORKCLIENT_H
